package com.sxj.corejava.code04_循环结构;

/**
 * @author 石小俊
 * 2024年07月10日 9:39
 */
public class Test15_随机数 {
    public static void main(String[] args) {
        // Math.random():随机生成一个[0,1)的小数
        System.out.println(Math.random());
        // 可以通过强制类型转换控制转换的数字的类型
        System.out.println((int) (Math.random()));

        // 随机生成0-9的整数
        // [0,9]---[0,10)
        System.out.println((int) (Math.random() * 10));

        // 随机生成3-5的整数
        // [3,5] --> [3,6) --> [0,3) + 3 --> [0,1) * 3 + 3
        System.out.println((int) (Math.random() * 3 + 3));

        // 随机生成34-36的整数
        // [34,36] --> [34,37) --> [0,3) + 34 --> [0,1) * 3 + 34
        System.out.println((int) (Math.random() * 3 + 34));

        // 随机生成x-y的整数
        int x = 123, y = 125;
        // [x,y] --> [x,y+1) --> [0,y+1-x) + x --> [0,1) * (y-x+1) + x
        System.out.println((int) (Math.random() * (y - x + 1) + x));

        // 随机生成a-c的字符
        // [a-c] --> [97,99]
        System.out.println((char) (Math.random() * (99 - 97 + 1) + 97));
        System.out.println((char) (Math.random() * ('c' - 'a' + 1) + 'a'));

        // 随机生成e-h的字符
        System.out.println((char) (Math.random() * ('h' - 'e' + 1) + 'e'));
    }
}
